我想去抓取Class的function 然後在執行該function
ClassName 跟 FunctionName 都有正常傳入值
目前 Type type = Type.GetType(ClassName); <= type = null
請問有哪個部分有問題 或有甚麼方法可以抓到該class內的function
class 跟 function NAME 都是傳入的
string ClassName = "TestQuartz";
string FunctionName = "Test1";
public class JobExecute : IJob
{
public async Task Execute(IJobExecutionContext context)
{
var dataMap = context.JobDetail.JobDataMap;
string ClassName = dataMap["ClassName"].ToString();
string FunctionName = dataMap["FunctionName"].ToString();
Type type = Type.GetType(ClassName);
MethodInfo method = type.GetMethod(FunctionName);
object obj = Activator.CreateInstance(type);
await Task.Run(() =>
{
method.Invoke(obj, null);
});
}
}
public class TestQuartz
{
public void Test1()
{
Console.WriteLine("Hello Quartz: Test1");
}
public void Test2()
{
Console.WriteLine("Hello Quartz: Test2");
}
}
public class TestQuartz
{
public void Test1()
{
Console.WriteLine("Hello Quartz: Test1");
}
public void Test2()
{
Console.WriteLine("Hello Quartz: Test2");
}
}
//這個class要有獨立的命名空間
string ClassName = dataMap["ClassName"].ToString();//需要包含 命名空間 + ClassName
Type type = Type.GetType(ClassName); //此時不會null
EX:
//Program.cs
// 類型的名稱
string className = "ConsoleApp5.TestQuartz";
string FunctionName = "Test1";
// 使用Type.GetType方法獲取類型
Type type = Type.GetType(className);
//------------------------------------------//
//TestQuartz.cs
namespace ConsoleApp5
{
public class TestQuartz
{
public void Test1()
{
Console.WriteLine("Hello Quartz: Test1");
}
public void Test2()
{
Console.WriteLine("Hello Quartz: Test2");
}
}
}
謝謝 例外我好像發到技術文章 而不問答 沒辦法給最佳解答